Programiranjem rešavamo realne probleme, a u realnom svetu često ne odlučujemo samo da li nešto da uradimo ili ne, već često biramo koju od dve stvari treba uraditi. Tako je i u poslednjem primeru koji smo uradili u lekciji "Uslovno izvršavanje".
Ovaj program će ili izvršiti liniju koraka = J - P; ili liniju koraka = P - J; jer je tačno jedan uslov zadovoljen. Drugi uslov je negacija prvog zato što, ako je uslov J > P tačan, uslov !(J > P) će biti netačan i obrnuto.
Ovako nešto se često javlja u programiranju - dva dela programa gde se svaki deo izvršava uslovno, a uvek se izvršava jedan od ta dva dela i nikada se ne izvršavaju oba. Ovakvo uslovno izvršavanje se toliko često javlja da postoji posebna struktura koja ga opisuje.
Opisana struktura se zove if-else i koristi se u sledećem programskom kodu.
#include <iostream> int main() { int J, P; std::cout << "Unesite dva broja - koliko Miki treba do Jocine " << "i koliko Miki treba do Perine kuce:" << std::endl; std::cin >> J >> P; int koraka; if ( J > P ) { koraka = J - P; } else { koraka = P - J; } std::cout << koraka << std::endl; }
Posle if strukture koja nam je već poznata piše se ključna reč else, otvorena vitičasta zagrada, a zatim naredbe koje se izvršavaju samo kada uslov nije tačan, i na kraju zatvorena vitičasta zagrada.
Primetimo da grananje nije ništa suštinski novo - i dalje se bavimo samo uslovnim izvršavanjem - ali nam olakšava i skraćuje pisanje (i izvršavanje) programa.
Na engleskom jeziku "if" znači ako, a "else" znači inače. Ovaj prevod nam omogućava da bolje razumemo ovaj koncept. Deo posle ključne reči if se izvršava ako je uslov tačan, inače se izvršava deo posle ključne reči else.